package com.engine.salary.service;

import com.engine.salary.entity.salarysob.dto.SalarySobBackItemDTO;
import com.engine.salary.entity.salarysob.param.SalarySobBackItemSaveParam;
import com.engine.salary.entity.salarysob.po.SalarySobBackItemPO;

import java.util.Collection;
import java.util.List;

/**
 * @author Harryxzy
 * @date 2022/11/15 16:18
 * @description 薪资账套的回算项目
 */
public interface SalarySobBackItemService {

    /**
     * @description 根据薪资账套id查询回算项目
     * @return List<SalarySackItemPO>
     * @author Harryxzy
     * @date 2022/11/15 16:20
     */
    List<SalarySobBackItemPO> listBySalarySobId(Long salarySobId);

    /**
     * @description 查询所有回算项目
     * @return List<SalarySackItemPO>
     * @author Harryxzy
     * @date 2022/11/18 11:31
     */
    List<SalarySobBackItemPO> listAll();

    void batchInsert(List<SalarySobBackItemPO> needInsertSalarySobBackItems);

    /**
     * @description 获取薪资回算项目
     * @return SalarySobBackItemPO
     * @author Harryxzy
     * @date 2022/11/16 14:36
     */
    SalarySobBackItemPO getById(Long salarySobBackItemId);

    /**
     * @description 保存薪资账套的回算项目
     * @return List<SalarySackItemDTO>
     * @author Harryxzy
     * @date 2022/11/18 10:43
     */
    List<SalarySobBackItemDTO> save(SalarySobBackItemSaveParam saveParam);


    /**
     * @description 获取回算薪资项目数
     * @return Integer
     * @author Harryxzy
     * @date 2022/11/18 11:39
     */
    Long getCountBySalarySobIdIn(Collection<Long> salarySobIds);

    /**
     * @description 根据薪资账套id删除回算薪资项目
     * @return int
     * @author Harryxzy
     * @date 2022/12/13 16:35
     */
    int deleteBySalarySobIds(Collection<Long> salarySobIds);

    List<SalarySobBackItemPO> listBySalaryItemIds(Collection<Long> salaryItemIds);

    List<SalarySobBackItemPO> getConfig(Long salarySobId);

}
